package sisgeroupas.dao;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import sisgeroupas.factory.ConnectionBD;
import sisgeroupas.model.ModelFornecedor;
import sisgeroupas.model.ModelItemVendido;


/**
 *
 * @author root
 */
public class ItemVendidoDao
{
    private Connection connection;
   /*int id;
   String nome;
   String sexo;
   String dataNascimento;
    */
    public ItemVendidoDao()
    {
        this.connection = new ConnectionBD().getConnection();
    }
    public void inserir(ModelItemVendido item)
    {
        String sql = "INSERT INTO itemvendido(idVenda,idCliente,idProduto) VALUES(?,?,?)";
        try
        {
            PreparedStatement stmt = connection.prepareStatement(sql);
            stmt.setInt(1,item.getIdVenda());
            stmt.setInt(2,item.getIdCliente()); 
            stmt.setInt(3,item.getIdProduto()); 
            
                                              
            stmt.execute();
            stmt.close();
        }
        catch(SQLException u)
        {
            JOptionPane.showMessageDialog(null,"Erro SQL: " + u.getMessage());  
            throw new RuntimeException(u);
            
        }
    }
        
    
    
    
  
    
    public void apagar(ModelItemVendido item)
     {
        String sql = "DELETE FROM itemvendido WHERE id = ?";
        //JOptionPane.showMessageDialog(null,"Executou sql");
        try
        {
            //JOptionPane.showMessageDialog(null,"Entrou no try");
            PreparedStatement stmt = connection.prepareStatement(sql);
            //JOptionPane.showMessageDialog(null,"Executou sql");
            
            stmt.setInt(1, item.getId());
                                 
            stmt.execute();
            stmt.close();
        }
        catch(SQLException u)
        {
            JOptionPane.showMessageDialog(null,"Erro SQL: " + u);  
            throw new RuntimeException(u);
        }
    }
    
     public ArrayList<ModelItemVendido> pesquisar(int idVenda)
     {
         
         ArrayList<ModelItemVendido> resultados = new ArrayList<ModelItemVendido>();
               

        try
        {
            //JOptionPane.showMessageDialog(null,"Entrou no try");
            PreparedStatement stmt = this.connection.prepareStatement("SELECT * FROM itemVendido where idVenda= " + idVenda);
            //Aqui coloca apenas uma variavel que usou para pesquisar ou 2 se for o caso
            //stmt.setString(1, cadastro.getNome());
            
            ResultSet rs= stmt.executeQuery();;
            
            while (rs.next()) {  
            ModelItemVendido temp = new ModelItemVendido();  
            // pega todos os atributos da cliente
            temp.setId(rs.getInt("id"));
            temp.setIdVenda(rs.getInt("idVenda"));
            temp.setIdCliente(rs.getInt("idCliente"));
            temp.setIdProduto(rs.getInt("idProduto"));
            resultados.add(temp);
            //JOptionPane.showMessageDialog(null, temp.getNome());
        }
                                 
            stmt.execute();
            stmt.close();
            rs.close();
        }
        catch(SQLException u)
        {
            JOptionPane.showMessageDialog(null,"Erro SQL: " + u);  
            throw new RuntimeException(u.getMessage());
        }
        return resultados;
    }
     public void atualizar(ModelItemVendido item)
    {
        
        String sql = "UPDATE  itemvendido set idVenda=?, idCliente=?, idProduto=? id=? ";
        try
        {
            PreparedStatement stmt = connection.prepareStatement(sql);
            
            
            stmt.setInt(1,item.getIdVenda());
            stmt.setInt(2,item.getIdCliente()); 
            stmt.setInt(3,item.getIdProduto());
            stmt.setInt(4,item.getId());
            
            stmt.execute();
            stmt.close();
        }
        catch(SQLException u)
        {
            JOptionPane.showMessageDialog(null,"Erro SQL: " + u);  
            throw new RuntimeException(u);
            //JOptionPane.showMessageDialog(null, "Erro SQL:" + u);
        }
    }
}